home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-2 / Inter.Net 55-2.iso / Mandrake / mdkinst / usr / bin / perl-install / standalone / keyboarddrake < prev    next >
Encoding:
Text File  |  2000-01-12  |  1.1 KB  |  47 lines

  1. #!/usr/bin/perl
  2.  
  3. use lib qw(/usr/lib/libDrakX);
  4.  
  5.  
  6. use interactive;
  7. use keyboard;
  8. use Xconfigurator_consts;
  9. use common qw(:system);
  10. use c;
  11.  
  12. local $_ = join '', @ARGV;
  13.  
  14. /-h/ and die "usage: keyboarddrake [--expert]\n";
  15.  
  16. $::expert = /-expert/;
  17. $::isStandalone = 1;
  18.  
  19. my $in = vnew interactive('su');
  20.  
  21. my $keyboard = keyboard::text2keyboard(
  22.       $in->ask_from_list_(_("Keyboard"),
  23.               _("What is your keyboard layout?"),
  24.               [ keyboard::list() ],
  25.               keyboard::keyboard2text(keyboard::read(''))));
  26.  
  27. my $isNotDelete = $::expert && !$in->ask_yesorno("BackSpace", "Do you want the BackSpace to return Delete in console?", 1);
  28.  
  29. my $kmap = keyboard::keyboard2kmap($keyboard);
  30. `loadkeys $kmap`;
  31.  
  32. my $xkb = keyboard::keyboard2xkb($keyboard);
  33. `setxkbmap $xkb`;
  34.  
  35. my $f = "/etc/X11/XF86Config";
  36. substInFile {
  37.     if (/^Section "Keyboard"/ .. /^EndSection/) {
  38.     s|^(\s*XkbLayout\s+).*|$1"$xkb"| 
  39.       and $_ .= join '', map { "    $_\n" } @{$xkb_options{$xkb} || []};
  40.     s,^(\s*(XkbVariant|XkbOptions)\s+).*,,; # remove existing one
  41.     }
  42. } $f if -e $f && !$::testing;
  43.  
  44. keyboard::write('', $keyboard, $isNotDelete);
  45.  
  46. $in->exit(0);
  47.